An operating system for a typical computing device provides an interface to the computing device's hardware accessible by a user and/or programs run by the computing device. The operating system may be responsible for both the management of hardware resources and process control. An operating system typically includes a large amount of code stored that is permanently stored on a non-volatile storage medium such as hard disk or Compact Disc (CD) associated with the computing device. While the use of non-volatile storage media allows the computing device to maintain the code for the operating system even when the computing device is powered off, non-volatile storage media are not fast enough to fetch code for execution by the processor at a rate that efficiently utilizes the processing capabilities of the computing device. Thus, most computing devices execute their operating systems from faster volatile memory, often referred to as the main memory of the computing device.
When such a computing device is first powered on, firmware embedded in the computing device known as a Basic Input Output System (BIOS) is responsible for loading the operating system from its non-volatile storage to the volatile main memory. Once the operating system has been loaded, it can then take control of the various hardware resources associated with the computing device.
As modern operating systems become increasingly complex, they generally take up more storage space. Consequently, the loading process may take more time. For some computing devices, several minutes may pass between the time a user presses the power button to the time that user is able to interact with the computing device. In addition, many features associated with some advanced operating systems such as complex management processes and protection policies may slow down the device. Such delays can be an inconvenience, especially if the user has a quick task to perform on the computing device and/or a limited amount of time. Additionally, if the computing device is a battery-run system such as a laptop, battery power may be wasted while loading elements of the operating system which ultimately will not be needed by the user.
Throughout the drawings, identical reference numbers designate similar, but not necessarily identical, elements.